package com.example.mymvvmdemo.models.device_detail.entity;

import java.util.List;

public class DeviceDetailEntity {

    public int code;
    public String message;
    public DataDTO data;

    @Override
    public String toString() {
        return "DeviceDetailEntity{" +
                "code=" + code +
                ", message='" + message + '\'' +
                ", data=" + data +
                '}';
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public DataDTO getData() {
        return data;
    }

    public void setData(DataDTO data) {
        this.data = data;
    }

    public static class DataDTO {
        public String message;
        public DeviceDTO device;

        @Override
        public String toString() {
            return "DataDTO{" +
                    "message='" + message + '\'' +
                    ", device=" + device +
                    '}';
        }

        public String getMessage() {
            return message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

        public DeviceDTO getDevice() {
            return device;
        }

        public void setDevice(DeviceDTO device) {
            this.device = device;
        }

        public static class DeviceDTO {
            public int id;
            public String name;
            public String device_id;
            public String device_type;
            public String description;
            public String location;
            public String status;
            public Object ip_address;
            public String mac_address;
            public String firmware_version;
            public String last_online_time;
            public List<String> functions;
            public List<ShortcutFunctionsDTO> shortcut_functions;
            public String created_at;
            public String updated_at;
            public OwnerDTO owner;

            @Override
            public String toString() {
                return "DeviceDTO{" +
                        "id=" + id +
                        ", name='" + name + '\'' +
                        ", device_id='" + device_id + '\'' +
                        ", device_type='" + device_type + '\'' +
                        ", description='" + description + '\'' +
                        ", location='" + location + '\'' +
                        ", status='" + status + '\'' +
                        ", ip_address=" + ip_address +
                        ", mac_address='" + mac_address + '\'' +
                        ", firmware_version='" + firmware_version + '\'' +
                        ", last_online_time=" + last_online_time +
                        ", functions=" + functions +
                        ", shortcut_functions=" + shortcut_functions +
                        ", created_at='" + created_at + '\'' +
                        ", updated_at='" + updated_at + '\'' +
                        ", owner=" + owner +
                        '}';
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public String getDevice_id() {
                return device_id;
            }

            public void setDevice_id(String device_id) {
                this.device_id = device_id;
            }

            public String getDevice_type() {
                return device_type;
            }

            public void setDevice_type(String device_type) {
                this.device_type = device_type;
            }

            public String getDescription() {
                return description;
            }

            public void setDescription(String description) {
                this.description = description;
            }

            public String getLocation() {
                return location;
            }

            public void setLocation(String location) {
                this.location = location;
            }

            public String getStatus() {
                return status;
            }

            public void setStatus(String status) {
                this.status = status;
            }

            public Object getIp_address() {
                return ip_address;
            }

            public void setIp_address(Object ip_address) {
                this.ip_address = ip_address;
            }

            public String getMac_address() {
                return mac_address;
            }

            public void setMac_address(String mac_address) {
                this.mac_address = mac_address;
            }

            public String getFirmware_version() {
                return firmware_version;
            }

            public void setFirmware_version(String firmware_version) {
                this.firmware_version = firmware_version;
            }

            public String getLast_online_time() {
                return last_online_time;
            }

            public void setLast_online_time(String last_online_time) {
                this.last_online_time = last_online_time;
            }

            public List<String> getFunctions() {
                return functions;
            }

            public void setFunctions(List<String> functions) {
                this.functions = functions;
            }

            public List<ShortcutFunctionsDTO> getShortcut_functions() {
                return shortcut_functions;
            }

            public void setShortcut_functions(List<ShortcutFunctionsDTO> shortcut_functions) {
                this.shortcut_functions = shortcut_functions;
            }

            public String getCreated_at() {
                return created_at;
            }

            public void setCreated_at(String created_at) {
                this.created_at = created_at;
            }

            public String getUpdated_at() {
                return updated_at;
            }

            public void setUpdated_at(String updated_at) {
                this.updated_at = updated_at;
            }

            public OwnerDTO getOwner() {
                return owner;
            }

            public void setOwner(OwnerDTO owner) {
                this.owner = owner;
            }

            public static class OwnerDTO {
                public int id;
                public String username;
                public Object mobile;
                public String email;

                @Override
                public String toString() {
                    return "OwnerDTO{" +
                            "id=" + id +
                            ", username='" + username + '\'' +
                            ", mobile=" + mobile +
                            ", email='" + email + '\'' +
                            '}';
                }

                public int getId() {
                    return id;
                }

                public void setId(int id) {
                    this.id = id;
                }

                public String getUsername() {
                    return username;
                }

                public void setUsername(String username) {
                    this.username = username;
                }

                public Object getMobile() {
                    return mobile;
                }

                public void setMobile(Object mobile) {
                    this.mobile = mobile;
                }

                public String getEmail() {
                    return email;
                }

                public void setEmail(String email) {
                    this.email = email;
                }
            }

            public static class ShortcutFunctionsDTO {
                public String id;
                public String icon;
                public String name;
                public String color;
                public ParamsDTO params;
                public String function;

                @Override
                public String toString() {
                    return "ShortcutFunctionsDTO{" +
                            "id='" + id + '\'' +
                            ", icon='" + icon + '\'' +
                            ", name='" + name + '\'' +
                            ", color='" + color + '\'' +
                            ", params=" + params +
                            ", function='" + function + '\'' +
                            '}';
                }

                public String getId() {
                    return id;
                }

                public void setId(String id) {
                    this.id = id;
                }

                public String getIcon() {
                    return icon;
                }

                public void setIcon(String icon) {
                    this.icon = icon;
                }

                public String getName() {
                    return name;
                }

                public void setName(String name) {
                    this.name = name;
                }

                public String getColor() {
                    return color;
                }

                public void setColor(String color) {
                    this.color = color;
                }

                public ParamsDTO getParams() {
                    return params;
                }

                public void setParams(ParamsDTO params) {
                    this.params = params;
                }

                public String getFunction() {
                    return function;
                }

                public void setFunction(String function) {
                    this.function = function;
                }

                public static class ParamsDTO {
                    public String alert;
                    public int threshold;

                    @Override
                    public String toString() {
                        return "ParamsDTO{" +
                                "alert='" + alert + '\'' +
                                ", threshold=" + threshold +
                                '}';
                    }

                    public String getAlert() {
                        return alert;
                    }

                    public void setAlert(String alert) {
                        this.alert = alert;
                    }

                    public int getThreshold() {
                        return threshold;
                    }

                    public void setThreshold(int threshold) {
                        this.threshold = threshold;
                    }
                }
            }
        }
    }
}
